<?php

/*
 * archivo para ser ejecutado por un cron todos los dias y generar un archivo de consulta despues
 */

set_time_limit(0);

//funciones de conexion
function con_mantis()
{
        if (!($link=mysql_connect("localhost","caweb","caweb")))
        {
                echo "Error conectando al sistema de bases de datos Mantis";
                exit();
        }
        if (!mysql_select_db("mantis12",$link))
        {
                echo "Error seleccionando la base de datos";
                exit();
        }
        return $link;
}


function con_caweb()
{
        if (!($link=mysql_connect("localhost","caweb","caweb")))
        {
                echo "Error conectando al sistema de bases de datos";
                exit();
        }
        if (!mysql_select_db("caweb",$link))
        {
                echo "Error seleccionando la base de datos";
                exit();
        }
        return $link;
}

function concatenar($var,$valor){
    if($var == "")
        $var = $valor;
    else
        $var = $var.",$valor";
    return $var;
}

//Elimina el archivo por si ya existia
@unlink("/var/www/html/caweb/scripts/reporteInconsistencias.xls");

$con = con_caweb();
//elimina toda la informacion de internos inconcistentes para ese nit en la tabla
$sql = "TRUNCATE TABLE equiposinconsistentes ";
$equCliente = mysql_query($sql);

//Realiza la consulta maestra
$sql = "select det.transaccion,det.interno,det.item,cab.terceroref, det.fechacreo from cabeceras cab ";
$sql .= "inner join detalles det on det.transaccion = cab.transaccion ";
$sql .= "where cab.documento in ('SCA','SOI','LOI') ";
//$sql .= "and terceroref = '800020706' ";
$sql .= "and (left(det.item,1) = 'C' or left(det.item,1) = 'I' or left(det.item,1) = 'M' or left(det.item,1) = 'O') ";
$sql .= "and not exists( ";
$sql .= "select detAux.interno from cabeceras cabAux ";
$sql .= "inner join detalles detAux on detAux.transaccion = cabAux.transaccion ";
$sql .= "where cabAux.documento in ('ECA','ECL') ";
$sql .= "and (cabAux.terceroref = cab.terceroref or cabAux.terceroref = '') ";
$sql .= "and detAux.bodegaorigen = 'CLI' ";
$sql .= "and detAux.ubicacionorigen = det.ubicaciondestino ";
$sql .= "and det.interno = detAux.interno) ";
$sql .= "and not exists( ";
$sql .= "select detBaj.interno from cabeceras_baj cabBaj ";
$sql .= "inner join detalles_baj detBaj on detBaj.transaccion = cabBaj.transaccion ";
$sql .= "where cabBaj.cliente = cab.terceroref ";
$sql .= "and detBaj.interno = det.interno) ";
$sql .= "and not exists( ";
$sql .= "select detBaj.interno from cabeceras_baj cabBaj ";
$sql .= "inner join detalles_baj detBaj on detBaj.transaccion = cabBaj.transaccion ";
$sql .= "where cabBaj.cliente = cab.terceroref ";
$sql .= "and detBaj.interno = det.interno) ";
$sql .= "and not exists( ";
$sql .= "select presunto from contrapartes con where con.cliente = cab.terceroref ";
$sql .= "and con.estado <> 'Ok' and con.presunto = det.interno) order by cab.terceroref";
$equCliente = mysql_query($sql);
//echo $sql; exit;
while ($equipo = mysql_fetch_array($equCliente)) {
    $descripcion = "";
    unset($monitor);
    $sql = "select estado,valoralquiler,facturable,item,id,sucursalfactura from basefacturacion ";
    $sql .= "where interno = '{$equipo['interno']}' ";
    $sql .= "and cliente = '{$equipo['terceroref']}' ";
    $sql .= "and fechacreo >=  '{$equipo['fechacreo']}' ";
    $base = mysql_query($sql);
    $base = mysql_fetch_array($base);
    if (is_array($base)) {
        //Valida los equipos vigentes
        if ($base['estado'] != 'V')
            $descripcion = concatenar($descripcion, "Interno no esta vigente");

        //Valida el estado facturable
        if (substr($base['item'], 0, 1) != 'M' || $base['valoralquiler'] > 0) {
            if ($base['facturable'] == 'No')
                $descripcion = concatenar($descripcion, "No tiene estado Facturable(Si)");
            if (substr($base['item'], 0, 1) == 'M')
                $monitor = $equipo['interno'];
        }
        //Valida que tenga valor alquiler
        if (substr($base['item'], 0, 1) != 'M' && $base['valoralquiler'] == 0)
            $descripcion = concatenar($descripcion, "No tiene valor alquiler");
        //Valida que tenga sucursal factura
        if ($base['sucursalfactura'] == "")
            $descripcion = concatenar($descripcion, "No tiene sucursal factura");
    }else
        $descripcion = concatenar($descripcion, "No existe en base de facturacion");

    //Verifica el valor
    $sql = "select interno,item,tarifa from seriales where interno = '{$equipo['interno']}'";
    $ser = mysql_query($sql);
    $ser = mysql_fetch_array($ser);
    if (!is_array($ser)) {
        $descripcion = concatenar($descripcion, "Interno no existe en serial");
    } else {
        //Valida que tenga valor alquiler solo cuando no es un Monitor, o cuando en base factururacion tiene valor de alquiler
        if (isset($monitor) && substr($ser['item'], 0, 1) == 'M')
            if ($ser['tarifa'] != $base['valoralquiler'])
                $descripcion = concatenar($descripcion, "valor alquiler diferentes");
        if (substr($ser['item'], 0, 1) != 'M')
            if ($ser['tarifa'] != $base['valoralquiler'])
                $descripcion = concatenar($descripcion, "valor alquiler diferentes");
    }
    if ($descripcion != "") {
        $sql = "insert into equiposinconsistentes(item,interno,descripcion,nit,tarifaFac,tarifaSer,idfacturacion)
                                values('{$equipo['item']}','{$equipo['interno']}','$descripcion','{$equipo['terceroref']}',{$base['valoralquiler']},{$ser['tarifa']},{$base['id']})";
        $result = mysql_query($sql);
    }
} //fin while($equipo = mysql_fetch_array($equCliente)){

//Guarda el resultado en un archivo CSV
//$con = con_mantis();
$sql1 = "select distinct nit from equiposinconsistentes order by nit";
$clientes = mysql_query($sql1);
$html = "<table>";
$html .= "<tr>";
$html .= "<th>EMPRESA</th>";
$html .= "<th>NIT</th>";
$html .= "<th>INTERNO</th>";
$html .= "<th>ITEM</th>";
$html .= "<th>DESCRIPCION</th>";
$html .= "<th>TARIFA FACTURACION</th>";
$html .= "<th>TARIFA SERIALES</th>";
$html .= "</tr>";
while ($cliente = mysql_fetch_array($clientes)) {
    //capturo el nombre del cliente
    $con = con_mantis();
    $sql = "select name from mantis_project_table where nit = '{$cliente['nit']}'";
    $tmp = mysql_query($sql);
    $nombre = mysql_fetch_array($tmp);
    //escribe informacion en el archivo
    $con = con_caweb();
    $sql = "select * from equiposinconsistentes where nit = '{$cliente['nit']}'";
    $select = mysql_query($sql);
    while ($fila = mysql_fetch_array($select)) {
        $html .= "<tr>";
        $html .= "<td>{$nombre['name']}</td>";
        $html .= "<td>{$fila['nit']}</td>";
        $html .= "<td>{$fila['interno']}</td>";
        $html .= "<td>{$fila['item']}</td>";
        $html .= "<td>{$fila['descripcion']}</td>";
        $html .= "<td>{$fila['tarifaFac']}</td>";
        $html .= "<td>{$fila['tarifaSer']}</td>";
        $html .= "</tr>";
    }
}
$html .="</table>";
$sfile="/var/www/html/caweb/scripts/reporteInconsistencias.xls"; // Ruta del archivo a generar

$fp=fopen($sfile,"w");
fwrite($fp,$html);
fclose($fp);
?>
